
        <html>
			<head>
			     <title>“会说话的键盘”:一个恶意推广木马的详细分析 - 腾讯电脑管家</title>
				 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
			</head>
			<body>
				<h1>原文地址:<a href="http://drops.wooyun.org/papers/10673">http://drops.wooyun.org/papers/10673</a></h1>
				
      <p>
        <h1>0x00 背景</h1>

<hr />

<p>拦截量一夜之间从零增长到20多万，通过回溯发现主要由“刚需”的色情播放器推广安装。然而分析时该软件却表现地很无辜——直接安装运行，看其功能就是为了实现按下按键播放对应的声音,几乎没有什么恶意行为。然而经测试，其功能并不完善，点击在线升级不进行任何判断就直接弹出当前已是最新版本的提示，这真的就是软件的全部功能吗？</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613392576230130.png" alt="" /></p>

<!--more-->

<p>（图1：木马拦截量呈爆发式增长）</p>

<h1>0x01 样本简介</h1>

<hr />

<p>软件名称：会说话的键盘<br />
文件名：Key&#95;jpls&#95;9181068.exe<br />
MD5：40dd0aca08e51406179f61cbc382ea84<br />
行为简介：安装时判断自身文件名，不符合规则就弹出安装向导，符合则直接静默安装，安装后在%appdata%\TsanZioxs目录下释放如下文件，并运行。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613393628598226.png" alt="" /></p>

<p>(图2：安装后释放文件)</p>

<p>其中Sound目录下除了很多声音文件外，还有两个数据文件。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613393737267325.png" alt="" /></p>

<p>（图3：Sound目录下部分文件）</p>

<p>运行后看着像是正常的软件，有界面、有看似正常的功能。</p>

<p><img src="http://static.wooyun.org//drops/20151126/201511261339398669241.jpeg" alt="" /></p>

<p>（图4：任务栏创建图标）</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613394059772515.png" alt="" /></p>

<p>（图5：点击图标后的相关界面）</p>

<h1>0x02 详细分析</h1>

<hr />

<h2>QcemTiosp.exe行为：</h2>

<p>1、在任务栏的通知区域创建图标，并创建相关的界面进行伪装，然而软件本身并不能实现播放按键声音的功能。如果符合条件，重启机器后将不会再出现相关界面，直接在后台执行。整个木马代码中被大量加入了异常处理函数并主动抛出异常,用于干扰分析。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613394226025612.png" alt="" /></p>

<p>（图6）</p>

<p>2、创建线程开始木马行为：首先获取MAC地址，并使用散列算法将MAC地址计算成一个hash值，随后将其发送到<code>udp.1qingling.com.cn:2005</code>,为了隐蔽该通讯使用UDP协议。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613394319177711.png" alt="" /></p>

<p>（图7）</p>

<p><img src="http://static.wooyun.org//drops/20151126/201511261339458946889.png" alt="" /></p>

<p>（图8）</p>

<p><img src="http://static.wooyun.org//drops/20151126/201511261339464718897.png" alt="" /></p>

<p>（图9）</p>

<p>3、接收服务器返回的数据，判断返回的相应值，如果是0x191，则不进行任何行为。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613394822477105.png" alt="" /></p>

<p>（图10）</p>

<p>4、为什么只上传了MAC的hash值就会返回0x191呢？难道有黑名单？或者通过MAC判断虚拟机？然而并不是，多次测试后发现该返回值与当前的ip地址有关系，比如在对北京、深圳、成都、杭州四个城市的测试中，发现只有北京和深圳返回了0x191，看来该木马至少避开了北京和深圳的用户。</p>

<p><img src="http://static.wooyun.org//drops/20151126/20151126133949360881112.png" alt="" /></p>

<p>（图11）</p>

<p>5、如果当前城市不是要屏蔽的城市，则不再装无辜，露出真面目，开始木马行为：首先创建开机自启动项长期驻扎电脑，随后将Sound目录下的Enter.bin文件映射到内存。</p>

<p><img src="http://static.wooyun.org//drops/20151126/20151126133951631671210.png" alt="" /></p>

<p>（图12）</p>

<p>6、经分析Enter.bin和Space.bin文件都是经过压缩的，压缩相关的参数存在文件的末尾，分别通过搜索Space和Enter关键词来定位压缩相关参数，如下图所示：</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613395225598136.png" alt="" /></p>

<p>（图13）</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613395413293145.png" alt="" /></p>

<p>（图14）</p>

<p>7、获取到相关参数后使用zlib库进行解压，该木马静态编译了zlib库，版本为1.2.3</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613395568092154.png" alt="" /></p>

<p>（图15）</p>

<p>8、解压成功后对文件进行简单的校验，确认是PE文件后创建自身傀儡进程，将解压出的PE注入到傀儡进程中运行。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613395778435161.jpeg" alt="" /></p>

<p>（图16）</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613395856193171.jpeg" alt="" /></p>

<p>（图17）</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400042623183.png" alt="" /></p>

<p>（图18）</p>

<h1>0x03 Enter.exe行为</h1>

<hr />

<p>该文件由Enter.bin解压而来不落地，MD5：1DCC1E25CF884AF7AF6EA3927CAB9D6E</p>

<p>1、下载<code>http://config.1qingling.com/biz/810.xml</code>配置文件，该配置文件经过加密，解密后内容如图19。该木马的主要功能分三块，第一是流氓推广、第二是弹窗，第三是右下角弹窗。每个功能都配置了生效时间，弹窗频率和时间等。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400249184193.png" alt="" /></p>

<p>（图19）</p>

<p>2、解析配置文件，根据配置文件进行下载推广行为。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400371194203.png" alt="" /></p>

<p>（图20）</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400544607211.jpeg" alt="" /></p>

<p>（图21推广的文件）</p>

<p>3、配置中的弹窗功能代码则不在此文件中，其以加载Enter.bin相同的方式加载Space.bin文件并在内存中加载，随后将配置文件中的参数作为命令行参数创建自身傀儡进程，将Space.bin注入执行。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400696357227.png" alt="" /></p>

<p>（图22）</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400862136234.png" alt="" /></p>

<p>（图23）</p>

<h1>0x04 Space.exe行为</h1>

<hr />

<p>该文件由Space.bin解压而来不落地，MD5：1DCC1E25CF884AF7AF6EA3927CAB9D6E</p>

<p>1、该文件的主要功能是从命令行参数中获取弹窗相关的参数信息，进行弹窗行为。</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613400959355245.png" alt="" /></p>

<p>（图24）</p>

<p>具体弹窗行为：</p>

<p>1）大的弹窗广告如图25：对应配置文件中的<code>&lt;Right&gt;</code>标签</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613401167437251.jpeg" alt="" /></p>

<p>(图25)</p>

<p>2）右下角弹窗广告如图26：对应配置文件中的<code>&lt;Minimax&gt;</code>标签</p>

<p><img src="http://static.wooyun.org//drops/20151126/2015112613401328658261.jpeg" alt="" /></p>

<p>（图26）</p>

<h1>0x05 后记：</h1>

<hr />

<p>随着安全软件的普及，纯粹木马的生存空间越来越小，更多的木马在看似正常的软件中插入恶意代码进行伪装，除了后台的恶意代码外，其在前台还创建了相应的伪装界面，尽量把自己装得单纯无害，甚至还会通过ip限制等手段逃避安全厂商的分析。</p>

<p>该木马的恶意推广列表中的大部分是流氓软件，还有少数危害严重的木马程序，且待下回分析。</p>      </p>
    
			</body>
		</html>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          